QDB2 -- IBM DB2 версии не ниже 7.1;
QIBASE -- Borland InterBase;
QMYSQL -- MySQL;
QOCI -- Oracle;
QODBC -- ODBC (в том числе Microsoft SQL Server);
QPSQL -- PostgreSQL;
QSQLITE -- SQLite версии не ниже 3;
QSQLITE2 -- SQLite версии 2;
QTDS -- Sybase Adaptive Server. В Qt4 Open Source Edition отсутствует поддержка коммерческих СУБД Oracle, Sybase и DB2, т.к. драйверы для них распространяются под лицензией, не совместимой с GPL.
QSQLITE. Чтобы подключить поддержку остальных СУБД,
надо при запуске configure указать параметры
-qt-sql-mysql, -qt-sql-psql,
-qt-sql-odbc, -qt-sql-ibase для компиляции
соответствующих статических библиотек или -plugin-sql-mysql,
-plugin-sql-psql, -plugin-sql-odbc,
-plugin-sql-ibase для компиляции динамических библиотек.
Компилятору и компоновщику потребуются заголовочные файлы и библиотеки,
поставляемые вместе с соответствующими СУБД. Поэтому при запуске
configure обычно требуется указать параметр
-Iпуть_к_h-файлам и -Lпуть_к_lib. В результате
компиляции в каталоге lib появится нужная динамическая библиотека.
Чтобы узнать, драйверы каких СУБД уже установлены, можно открыть
демонстрационную программу demos/sqlbrowser.
Если библиотека Qt уже скомпилирована, то можно просто зайти в каталог
qt/src/plugins/sqldrivers/НужныйДрайвер и выполнить компиляцию
находящегося там проекта *.pro.
Например, для сборки драйвера ODBC в Windows: При использовании Visual C++ последняя команда, разумеется,
cd %QTDIR%\src\plugins\sqldrivers\odbc
qmake -o Makefile odbc.pro
mingw32-make
nmake.
В Linux: cd $QTDIR/src/plugins/sqldrivers/odbc
qmake "INCLUDEPATH+=/usr/local/unixODBC/include"
"LIBS+=-L/usr/local/unixODBC/lib -lodbc"
make
Для сборки драйвера PostgreSQL в Windows: (все пути не должны содержать пробелов).
cd %QTDIR%\src\plugins\sqldrivers\psql
qmake -o Makefile "INCLUDEPATH+=C:\psql\include"
"LIBS+=C:\psql\lib\ms\libpq.a" psql.pro
mingw32-make
В Linux: Заметим, что драйвер cd $QTDIR/src/plugins/sqldrivers/psql
qmake -o Makefile "INCLUDEPATH+=/usr/include/pgsql"
"LIBS+=-L/usr/lib -lpq" psql.pro
make
QPSQL может работать только с
кодировкой utf-8.
Для сборки драйвера MySQL в Windows: (все пути не должны содержать пробелов). Для компиляции с помощью
Microsoft Visual C++ вместо cd %QTDIR%\src\plugins\sqldrivers\mysql
qmake -o Makefile "INCLUDEPATH+=C:\MySQL\include"
"LIBS+=C:\MySQL\lib\opt\libmysql.a" mysql.pro
mingw32-make
libmysql.a надо указать
libmysql.lib.
В Linux: cd $QTDIR/src/plugins/sqldrivers/mysql
qmake -o Makefile "INCLUDEPATH+=/usr/local/include"
"LIBS+=-L/usr/local/lib -lmysqlclient_r" mysql.pro
make
Результат компиляции (динамические библиотеки) помещается в каталог
plugins/sqldrivers.
Обычно для Windows поставляются библиотеки *.lib, рассчитанные
на использование компилятора Microsoft. Поскольку свободная версия Qt4 для
Windows поддерживает только MinGW, то перед сборкой SQL-драйвера придётся
сначала сгенерировать def-файл, например: (утилита cd c:\mysql\lib\opt
reimp -d libmysql.lib
reimp поставляется вместе с MSYS), а затем
сформировать библиотеку *.a: dlltool -d libmysql.def -l libmysql.a libmysql.dll -k
Перед выполнением приложений Qt, если используются SQL-драйверы,
скомпилированные в виде динамических библиотек, требуется позаботиться о том,
чтобы сами эти библиотеки, а также, в свою очредь, используемые ими библиотеки,
поставляемые с соответствующими СУБД, были доступны по стандартным путям поиска.
В окончательных релизах, поставляемых пользователю, Qt-драйверы
qsql* лучше всего размещать в подкаталоге
./plugins/sqldrivers, а используемые ими библиотеки -- либо в
каталоге самой программы, либо в стандартном каталоге
Windows/system32 (для системы Windows) или usr/lib
(для Linux).